package com.gt.service.projectMember;

import com.gt.dao.projectMember.ProjectMemberDAO;
import com.gt.entity.projectMember.ProjectMember;
import com.gt.service.base.BaseServiceImpl;

import java.util.List;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

/**
 * 项目成员业务接口实现类
 * @author why
 */
@Service("projectMemberService")
public class ProjectMemberServiceImpl extends BaseServiceImpl implements ProjectMemberService {

	// Fields

	@Autowired
	private ProjectMemberDAO projectMemberDAO;// 项目成员DAO接口

	// Methods

   /**
	* 添加项目成员
	*      id 主键值
	*      memberEmail 成员邮箱
	*      isAdmin 是否有管理权限1：有  2:无（管理员可以添加成员和删除成员）
	*      state 成员状态：1:启用   2：禁用
	*      projectId 项目id
	*      createTime 创建时间
	*      updateTime 修改时间
	* @return Long id 添加后的数据库主键值
	*/
	@Override
	public Long add(ProjectMember projectMember) {
		// 构造项目成员参数实体
		this.projectMemberDAO.insert(projectMember);
		return projectMember.getId();
	}

   /**
	* 删除项目成员
	*      id 主键值
	*/
	@Override
	public void delete(Long id) {
		// 调用项目成员DAO接口
		this.projectMemberDAO.delete(id);
	}

   /**
	* 更新项目成员
	*      id 主键值
	*      memberEmail 成员邮箱
	*      isAdmin 是否有管理权限1：有  2:无（管理员可以添加成员和删除成员）
	*      state 成员状态：1:启用   2：禁用
	*      projectId 项目id
	*      createTime 创建时间
	*      updateTime 修改时间
	*/
	@Override
	public void edit(ProjectMember projectMember) {
		// 调用项目成员DAO接口
		this.projectMemberDAO.update(projectMember);
	}

   /**
	* 主键查询项目成员
	*      id 主键值
	* @return ProjectMember 实体
	*/
	@Override
	public ProjectMember queryById(Long id) {
		// 调用项目成员DAO接口
		return this.projectMemberDAO.selectById(id);
	}

   /**
	* 根据条件查询项目成员列表
	*      id 主键值
	*      memberEmail 成员邮箱
	*      isAdmin 是否有管理权限1：有  2:无（管理员可以添加成员和删除成员）
	*      state 成员状态：1:启用   2：禁用
	*      projectId 项目id
	*      createTime 创建时间
	*      updateTime 修改时间
	* @return List<ProjectMember> 实体List
	*/
	@Override
	public List<ProjectMember> queryList(ProjectMember projectMember) {
			// 调用项目成员DAO接口
		return this.projectMemberDAO.selectList(projectMember);
	}

	/**
	 * 根据项目id查询成员信息
	 * @param projectId
	 * @return
	 */
	@Override
	public List<ProjectMember> querySelectMemberByProjectId(Long projectId) {
		return this.projectMemberDAO.selectMemberByProjectId(projectId);
	}

}